package com.boarsoft.boar.soagov.com;

import com.boarsoft.bean.ReplyInfo;
import com.boarsoft.boar.entity.ComInfo;
import com.boarsoft.common.dao.PagedResult;

public interface ComBiz {

	PagedResult<ComInfo> list(String key, String orderBy, int pageNo, int pageSize);

	PagedResult<ComInfo> listByFaceId(String faceId, String key, String orderBy,
			int pageNo, int pageSize);

	void save(ComInfo o);

	ComInfo get(String id);

	/**
	 * 复制ComInfo，以及ObjFaces、SoaNexus
	 * 
	 * @param sourceId
	 *            被拷贝的节点的ID
	 * @param parentId
	 *            目标节点（新节点的父节点）
	 * @param newId
	 *            新节点的ID（需要与DirInfo一致）
	 * @return
	 */
	String copy(String sourceId, String parentId, String newId);

	/**
	 * 移动com，暂无动作，未来有libId的话，libId可能会变
	 * 
	 * @param id
	 * @param to
	 * @return
	 */
	boolean move(String id, String to);

	/**
	 * 删除某个组件，同时删除目录、依赖关系<br/>
	 * 如果这个组件被其它组件依赖，则返回INFO_INUSE
	 * 
	 * @param id
	 * @return
	 */
	ReplyInfo<String> delete(String id);

	/**
	 * 查询被by所依赖的ComInfo
	 * 
	 * @param by
	 * @param key
	 * @param orderBy
	 * @param pageNo
	 * @param pageSize
	 * @return
	 */
	PagedResult<ComInfo> listByNexus(String by, String key, String orderBy, int pageNo,
			int pageSize);

	void update(ComInfo o);
}
